package org.puc.enquete.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * Esta classe é responsável por inicializar o driver de banco de dados
 * E fornecer uma nova conexão, através da URL configurada aqui
 */
public class AcessaBD {

    //URL de conexão com o banco
    private static String url = "jdbc:derby://localhost:1527/enquete_web;create=true";

    //variável estática que fiz se o banco de dados foi iniciado corretamente
    private static boolean acessoBanco = false;

    /**
     * Inicializador estático: código executado apenas uma vez quando
     * a classe é carregada pelo java.
     * Utilizado para carregar o driver do Banco de Dados
     */
    static {

        try {

            Class.forName("org.apache.derby.jdbc.ClientDriver");
            //se chegou aqui é pq encontrou o driver do banco de dados
            acessoBanco = true;

        } catch (ClassNotFoundException ex) {

            //imprime erro, se houver
            ex.printStackTrace();

        }

    }

    /**
     * Método que verifica se o acesso ao banco está correto
     * Se não estiver, lança uma exceção (não verificada)
     */
    public static void verificaAcessoBanco() {

        if (!acessoBanco) {

            throw new RuntimeException("Banco de dados não pode ser acessado. Verifique o Driver!");

        }

    }

    /**
     * Cria uma conexão com o banco de dados
     */
    public static Connection getConnection() throws SQLException {

        return DriverManager.getConnection(url, "enquete", "0");

    }

}
